#ifndef FRIENDMANAGER_H
#define FRIENDMANAGER_H

#include <QMainWindow>
#include <QTreeWidget>
#include <QListWidget>
#include <QStackedWidget>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPixmap>
#include <QStyleOption>
#include <QPainter>

// 自定义好友项控件：包含头像、昵称、状态、签名
class FriendItem : public QWidget {
    Q_OBJECT
public:
    FriendItem(const QString& avatarPath, const QString& name,
               bool isOnline, const QString& signature, QWidget* parent = nullptr);
protected:
    void paintEvent(QPaintEvent* event) override; // 绘制 hover 等效果
private:
    QLabel* m_avatarLabel;   // 头像
    QLabel* m_nameLabel;     // 昵称
    QLabel* m_statusLabel;   // 状态（在线/离线）
    QLabel* m_signatureLabel;// 个性签名
};

// 主窗口：好友管理器
class FriendManager : public QMainWindow {
    Q_OBJECT
public:
    FriendManager(QWidget* parent = nullptr);
private:
    void initUI();                // 初始化界面
    void initTreeWidget();        // 初始化左侧分组树
    QListWidget* createFriendList(); // 创建好友列表（通用方法）
    void initStyle();             // 初始化样式表（美化界面）
private:
    QTreeWidget* m_treeWidget;    // 左侧分组树
    QStackedWidget* m_stackedWidget; // 右侧堆叠窗口（切换不同分组的好友列表）
};

#endif // FRIENDMANAGER_H
